//-------------------------------------------------------------------------------------
//--created:	2015/03/03
//--filename: 	\QuoteBoard\include\SSMoneyMarketModel.h
//--file path:	\QuoteBoard\include
//--file base:	SSMoneyMarketModel
//--file ext:	h
//--author:		Dif
//--purpose:	Money Market相关消息结构
//-------------------------------------------------------------------------------------
#ifndef SS_MONEY_MARKET_MODEL
#define SS_MONEY_MARKET_MODEL
#include <list>
#include <map>

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_FREEZE_AUTO             = 57420,			//Money Market报价界面--自动更新		--市场冻结信息。接收方接到此消息后，向后台提交所有当前报价的撤销处理请求。

//response
//E_FID_MMARKET_QUOTATION_FREEZE_AUTO
//57420,Money Market报价界面--自动更新--市场冻结信息。接收方接到此消息后，向后台提交所有当前报价的撤销处理请求。
//xMMarketQuotationFreezeAutoAck
//此消息不需要解析返回结构，只要有此消息号返回，收报价方即做相应处理。


//资产类型及标签相关内部类
//资产类型
class xMMAssetInfo_c
{
public:
    //ID
    std::string m_ID;
    //NameCn
    std::string m_NameCn;
    //NameEn
    std::string m_NameEn;
    //Order
    int m_Order;

    xMMAssetInfo_c()
        :m_ID("")
        ,m_NameCn("")
        ,m_NameEn("")
        ,m_Order(0)
    {
    }
};

//标签类型
class xMMTagInfo_c
{
public:
    //ID
    std::string m_ID;
    //AssetID
    std::string m_AssetID;
    //NameCn
    std::string m_NameCn;
    //NameEn
    std::string m_NameEn;
    //Catalog
    std::string m_Catalog;
    //Order
    int m_Order;

    xMMTagInfo_c()
        :m_ID("")
        ,m_AssetID("")
        ,m_NameCn("")
        ,m_NameEn("")
        ,m_Catalog("")
        ,m_Order(0)
    {
    }
};

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_QUERY_ASSET             = 57310,            //Money Market报价界面					--查询资产类型

//57310--request
//xMMQuotQueryAssetReq
class xMMQuotQueryAssetReq_c
{
};

//57310--response
//xMMQuotQueryAssetAck
class xMMQuotQueryAssetAck_c
{
public:
    //AssetList
   std::list<xMMAssetInfo_c> m_AssetList;
};

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_QUERY_TAG               = 57311,            //Money Market报价界面					--查询指定资产的标签

//57311--request
//xMMQuotQueryTagReq
class xMMQuotQueryTagReq_c
{
public:
    //AssetIDList
    std::list<std::string> m_AssetIDList;
};

//57311--response
//xMMQuotQueryTagAck
class xMMQuotQueryTagAck_c
{
public:
    //TagList
    std::list<xMMTagInfo_c> m_TagList;
};

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_QUERY_USR_ASSETTAG      = 57312,            //Money Market报价界面					--查询用户保存的资产标签

//57312--request
//xMMQuotQueryUsrAssetTagReq
class xMMQuotQueryUsrAssetTagReq_c
{
public:
    //UsrID
    std::string m_UsrID;
};

//57312--response
//xMMQuotQueryUsrAssetTagAck
class xMMQuotQueryUsrAssetTagAck_c
{
public:
    //TagIDList
    std::list<std::string> m_TagIDList;
};

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_SAVE_USR_ASSETTAG       = 57313,            //Money Market报价界面					--保存用户设置的资产标签

//57313--request
//xMMQuotSaveUsrAssetTagReq
class xMMQuotSaveUsrAssetTagReq_c
{
public:
    //UsrID
    std::string m_UsrID;
    //TagIDList
    std::list<std::string> m_TagIDList;
};

//57313--response
//返回值为空，从msgHead中的错误信息号是否为0判断是否成功

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_QUERY_USR_FILTERTAG     = 57314,            //Money Market报价界面					--查询用户保存的筛选标签

//57314--request
//xMMQuotQueryUsrFilterTagReq
class xMMQuotQueryUsrFilterTagReq_c
{
public:
    //UsrID
    std::string m_UsrID;
};

//57314--response
//xMMQuotQueryUsrFilterTagAck
class xMMQuotQueryUsrFilterTagAck_c
{
public:
    //TagIDList
    std::list<std::string> m_TagIDList;
};

//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_SAVE_USR_FILTERTAG      = 57315,            //Money Market报价界面					--保存用户设置的筛选标签

//57315--request
//xMMQuotSaveUsrFilterTagReq
class xMMQuotSaveUsrFilterTagReq_c
{
public:
    //UsrID
    std::string m_UsrID;
    //TagIDList
    std::list<std::string> m_TagIDList;
};

//57315--response
//返回值为空，从msgHead中的错误信息号是否为0判断是否成功



//inner
//资产默认的报价类型信息
class xMMTypeInfo_c
{
public:
    //TypeID
    std::string m_TypeID;
    //AssetID
    std::string m_AssetID;
    //NameCn
    std::string m_NameCn;
    //NameEn
    std::string m_NameEn;


    xMMTypeInfo_c()
        :m_TypeID("")
        ,m_AssetID("")
        ,m_NameCn("")
        ,m_NameEn("")
    {
    }
};


//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_QUERY_ASSET_TYPE        = 57320,            //Money Market报价界面					--查询指定资产的报价类型

//57320--request
//xMMQuotQueryTypeReq
class xMMQuotQueryTypeReq_c
{
public:
    //AssetIDList
    std::list<std::string> m_AssetIDList;
};

//57320--response
//xMMQuotQueryTypeAck
class xMMQuotQueryTypeAck_c
{
public:
    //TypeList
    std::list<xMMTypeInfo_c> m_TypeList;
};





//-------------------------------------------------------------------------------------
//--E_FID_MMARKET_QUOTATION_QUERY_QUOT_STATUS       = 57060,            //Money Market报价界面					--查询MM报价状态

//57060--request
//xMMQuotQueryQuotStatusReq

class xQMContactID_c
{
public:
	//ContactQMID
	std::string m_ContactQMID;
	//ContactType
	int m_ContactType;

	xQMContactID_c()
		:m_ContactQMID("")
		, m_ContactType(0)
	{
	}

	bool operator== (const xQMContactID_c& rhs) const
	{
		return m_ContactQMID == rhs.m_ContactQMID && m_ContactType == rhs.m_ContactType;
	}

	bool operator< (const xQMContactID_c& rhs) const
	{
		if (m_ContactQMID == rhs.m_ContactQMID)
		{
			return m_ContactType < rhs.m_ContactType;
		}
		return m_ContactQMID < rhs.m_ContactQMID;
	}
};

typedef std::list<xQMContactID_c> LstQMContactID;

class xReqQuotStatus_c
{
public:
	//QuotID
	std::string m_QuotID;
	//Contact
	xQMContactID_c m_Contact;

	xReqQuotStatus_c()
		:m_QuotID("")
	{
	}
};

typedef std::list<xReqQuotStatus_c> LstReqQuotStatus;

class xQuotStatus_c
{
public:
	//QuotID
	std::string m_QuotID;
	//Contact
	xQMContactID_c m_Contact;
	//Status
	int m_Status;

	xQuotStatus_c()
		:m_QuotID("")
		, m_Status(0)
	{
	}
};

typedef std::list<xQuotStatus_c> LstQuotStatus;

class xMMQuotQueryQuotStatusReq_c
{
public:
    //ReqQuotStatusList
    LstReqQuotStatus m_ReqQuotStatusList;
};

//57060--response
//xMMQuotQueryQuotStatusAck
class xMMQuotQueryQuotStatusAck_c
{
public:
    //QuotStatusList
    LstQuotStatus m_QuotStatusList;
};

//-------------------------------------------------------------------------------------
//E_FID_QUOTMNG_QUERY_USRPROV                     = 57341,            //查询用户所在省份信息
class xProvInfo_c
{
public:
    //UserID
    std::string m_UserID;
    //Province
    std::string m_Province;
};

//57341 -- request
//xMMQuotQueryUserProvReq
class xMMQuotQueryUserProvReq_c
{
public:
    //UsrLst
    std::list<std::string> m_UsrLst;
};

//57341 -- response
//xMMQuotQueryUserProvAck
class xMMQuotQueryUserProvAck_c
{
public:
    //ProvLst
    std::list<xProvInfo_c> m_ProvLst;
};

class xPhoneNum_c
{
public:
	//Type 
	//"Mobile" -- 手机; "Telephone" -- 固话
	std::string m_Type;
	//Num
	std::string m_Num;
};

//-------------------------------------------------------------------------------------
//E_FID_QUOTMNG_QUERYQMDISNAME_BYQBID             = 57342,            //根据QBUserID，获取相应的QM联系人用户名，机构信息
class xQMInfo_c
{
public:
    //QBId
    std::string m_QBId;
    //DisplayName
    std::string m_DisplayName;
    //InsName
    std::string m_InsName;

    //lstPhoneNum
    std::list<xPhoneNum_c> m_lstPhoneNum;
};

//57342 -- request
//xMMQuotQueryQMInfoReq
class xMMQuotQueryQMInfoReq_c
{
public:
    //QBIdLst
    std::list<std::string> m_QBIdLst;
};

//57342 -- response
//xMMQuotQueryQMInfoAck
class xMMQuotQueryQMInfoAck_c
{
public:
    //QMInfoLst
    std::list<xQMInfo_c> m_QMInfoLst;
};
#endif
